//////////////////////////////////////////////////////////////////////
//  Jack McCaffery
//  11-10-2014
//////////////////////////////////////////////////////////////////////

#pragma once

#include "topicModel/parameterGroup.H"


/// \brief Class of parameters which do not change under gradient
///	   SC is the scalar type of the data
template <class SC>
class FixedParameters : public ParameterGroup<SC>
{
public:
	~FixedParameters ()
	{ }

	FixedParameters () : ParameterGroup<SC> ()
	{ }

	/// \brief Apply a gradient with a rate parameter
	/// \param gradient_ The gradient to apply. Dimensions must
	///	   match the dimensions of data
	/// \param rate_ A rate that controls the magnitude of the gradient
	void applyGradient (FixedParameters<SC> const &gradient_,
			    double rate_)
	{
		Q_UNUSED (gradient_);
		Q_UNUSED (rate_);	
		qFatal ("Gradient not applicable to FixedParameters");
	}
};



